//
//  CZMainViewController.swift
//  weibo30
//
//  Created by 石磊 on 16/8/8.
//  Copyright © 2016年 石磊. All rights reserved.
//

import UIKit

class CZMainViewController: UITabBarController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        //  添加子控制器的两种方式
        //  1.
        //        viewControllers
        //  2.
        //        addChildViewController(xx)
        
        //  全局设置UITabbar的tintColor, 执行的越早越好,一般会放到appdelegate里面
        UITabBar.appearance().tintColor = UIColor.orangeColor()
        
        
        
        //  设置自定义的Tabbar
        let czTabbar = CZTabBar()
        //  设置代理对象
        czTabbar.czDelegate = self
        
        
        
        czTabbar.composeButtonClosure = { [weak self] in
            
            print("我是闭包调用过来的")
        }
        
        //  使用kvc方式给系统的只读属性设置值
        setValue(czTabbar, forKey: "tabBar")
        
        //  添加子视图控制器
        addChildViewController(CZHomeTableViewController(), imageName: "tabbar_home", title: "首页")
        
        addChildViewController(CZMessageTableViewController(), imageName: "tabbar_message_center", title: "消息")
        addChildViewController(CZDiscoverTableViewController(), imageName: "tabbar_discover", title: "发现")
        addChildViewController(CZProfileTableViewController(), imageName: "tabbar_profile", title: "我的")
        
        
    }
    
    //  重载添加自控制的函数
    func addChildViewController(childController: UIViewController, imageName: String, title: String) {
        //  设置图片
        childController.tabBarItem.image = UIImage(named: imageName)
        //  修改渲染模式
        childController.tabBarItem.selectedImage = UIImage(named: "\(imageName)_selected")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
        //  设置标题
        //        childController.tabBarItem.title = title
        //        childController.navigationItem.title = title
        childController.title = title
        
        //  添加点文字的图片
        //        if title == "我的" {
        //            childController.title = nil
        //            childController.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0)
        //        }
        
        //  设置文字颜色
        childController.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.orangeColor()], forState: .Selected)
        //  设置字体大小
        childController.tabBarItem.setTitleTextAttributes([NSFontAttributeName: UIFont.systemFontOfSize(14)], forState: UIControlState.Normal)
        
        //  添加到导航控制器
        let nav = UINavigationController(rootViewController: childController)
        
        //  给当前对象添加子视图控制器
        
        addChildViewController(nav)
        
        
        
    }
    
}

extension CZMainViewController: CZTabBarDelegate {
    //  实现代理方法
    func didSelectedComposeButton() {
        print("我是代理对象调用过来的")
    }
    
}







